查看原文
其他

【综述专栏】Self-supervised Learning

在科学研究中,从方法论上来讲,都应先见森林,再见树木。当前,人工智能科技迅猛发展,万木争荣,更应系统梳理脉络。为此,我们特别精选国内外优秀的综述论文,开辟“综述”专栏,敬请关注。

作者:yearn

地址:https://www.zhihu.com/people/zyf-98-4


来自清华Jie Tang老师对于自监督学习的综述,不久前写过一篇contrastive learning比较有趣的一些工作,完全没基础的可以先看看这里。对文中比较有意思的引文大概都看了一遍,也会写写自己的理解,如果有错希望大佬们及时纠正。
https://zhuanlan.zhihu.com/p/212873650
supervised learning在过去的十年里取得了巨大的成功,但是他对数据的依赖和易于攻击的特点促使人们寻找更好的解决方案。作为一种替代方法,自监督学习(SSL)近年来因其在表示学习方面的卓越表现而吸引了许多研究者。自监督表示学习利用输入数据本身作为监督,并且几乎有利于所有类型的下游任务。在这个调查中,我们看看新的自我监督学习方法在计算机视觉,自然语言处理,和graph learning。我们对现有的经验方法进行了全面的回顾,并根据其目的将其归纳为生成性、对比性和产生性对比(对抗性)三大类。我们进一步研究相关的理论分析工作,以提供更深入的思考自我监督学习是如何工作的。最后,我们简要讨论了自监督学习的开放问题和未来的发展方向。提供了调查的幻灯片大纲。

01

INTRODUCTION

什么叫自监督学习呢,由LeCun的话来说就是两点
  1. 使用“半自动”过程从数据本身获取“标签”。
  2. 利用其他部分数据来预测数据,具体地说,这里的“其他部分”可能是不完整的、转换的、扭曲的或损坏的,也就是说model尝试着恢复所有的数据。

这里再简单说一下self-supervised与unsupervised的区别(个人理解)。self-supervised是unsupervised的一种。然而unsupervised learning尝试着学习数据的模式,像聚类,异常检测等,他是完全没有标签的。而self-supervised learning关注点在于恢复,他有标签,但是标签往往是自己预测的,比如我拿出一张照片anchor,将其做翻转得到x,那么这两个照片标签一样,再随机抽取一张照片y,他和anchor的标签视作不同,大概就是这个意思。
这篇文章的主要贡献,以及你能获得的东西主要有以下几部分
  1. 一个详细的和最新的回顾自监督学习的表征。介绍了背景知识、变量模型和重要的框架。人们可以很容易地掌握自我监督学习的前沿思想。
  2. generative, contrastive, 和 generative-contrastive (adversarial)三个部分各自的发展,以及最近生成模型向contrastive的转变过程。
  3. 提供了自监督学习方法的理论可靠性,并展示了它如何有益于下游的监督学习任务。理论可靠性还是很make sense的
  4. 提出了目前自监督学习还存在的一些问题以及未来可能的发展方向
文章的组织大概是这样的,section 2主要是介绍CV,NLP,graph learning的基础知识,感觉自己已经掌握的可以跳过。section 3-5 依次是生成模型,对比模型,以及生成对抗模型。section 6重点在于理论分析,建议自己手推一遍。section 7讨论一下存在的问题。

02

BACKGROUND

预训练的词表达是NLP的重要部分,word embedding将词语使用低维空间的实值向量表达。当下主要有两种word embedding:上下文的词嵌入和没有上下文的词嵌入。
Non-contextual Embeddings不考虑词的上下文关系,仅仅是一个token给一个embedding,显然处理不了同词不同义的问题,也不能对复杂的词汇用法进行建模。
为了处理上述的问题,contextual embedding应运而生,给定一个文本序列  ,  的contextual embedding依赖于整个序列
 是产生embedding的函数,因为对于相同的token,当他所处的文本不同时,他的embedding也是不同的,因此这种叫做contextual embedding。这种嵌入可以区分词语在不同语境中的语义
分布式单词嵌入将每个单词表示为密集的、实值的、低维的向量。第一代的词嵌入是作为一个神经网络语言模型(NNLM)引入的,不过在这之前大家最好看看n-gram[1],什么是n-gram呢,简单来讲就是,一个词的出现,只取决于他前面的n个词,以下:

一般取2,3就够用了,计算时使用频率代替概率即可
n-gram是存在问题的,他不能对词之间的联系和含义有很好的理解,只是单纯的假设和前n个词有关,并且上下文的长度也是有限的。NNLM[2]就解决了这个问题,NNLM旨在优化最大似然函数:
其中
 就是从第i个单词开始,第j个单词结束的子序列. NNLM的模型和主要的三个步骤如下:
http://blog.sina.com.cn/s/blog_66a6172c0102v1zb.html
A、将单词  映射到m维的特征空间中;
B、使用单词序列的对应向量集合作为输入表达单词序列的联合概率方程;
C、同步学习单词的特征向量和概率函数。
对NNLM而言,大多数运算集中在hidden layer的部分。之后word2vec被提出,到目前为止word2vec也是作为流行的embedding生成方式。Word2Vec解决的问题已经和上面讲到的N-gram、NNLM等不一样了,它要做的事情是:学习一个从高维稀疏离散向量到低维稠密连续向量的映射。该映射的特点是,近义词向量的欧氏距离比较小,词向量之间的加减法有实际物理意义。Word2Vec由两部分组成:CBoW和Skip-Gram。其中CBoW的结构很简单,在NNLM的基础上去掉隐层,Embedding层直接连接到Softmax,CBoW的输入是某个Word的上下文(例如前两个词和后两个词),Softmax的输出是关于当前词的某个概率,即CBoW是从上下文到当前词的某种映射或者预测。Skip-Gram则是反过来,从当前词预测上下文,至于为什么叫Skip-Gram这个名字,原因是在处理过程中会对词做采样。word2vec我看来其实和自编码器的结构很像,细节可以看看下面这篇文章
https://zhuanlan.zhihu.com/p/26306795
第一代word embedding就是Non-contextual Embeddings,因此第二代词嵌入很快就出世了。包括ELMo:一种基于rnnn的双向语言模型,为每个单词标记学习多个嵌入,并根据下游任务决定如何组合这些嵌入。BERT:基于transformer的双向编码器表示,有预训练和fine-tune两个部分。在训练阶段,BERT对句子中的一些符号进行掩码,然后被训练预测掩码词。在使用BERT时,我们首先使用预先训练好的权重初始化BERT模型,然后在下游任务上对预先训练好的模型进行微调。
2.1 Representation Learning in CV
这里主要介绍了几个famous的backbone,重点介绍了resnet,就不赘述了
2.2 Representation Learning on Graphs
图作为一种普遍存在的数据结构,广泛应用于许多领域,成为许多系统的主干。图的机器学习的中心问题是找到一种表示图结构的方法,以便机器学习模型可以很容易地利用它为了解决这一问题,研究者们提出了一系列在节点级和图级进行图表示学习的方法,这已成为近年来的研究热点。
一个图定义如下  V是图中的节点,E是边,X是|V|个节点的特征矩阵。节点级的表示学习旨在学一个隐含的节点表示  ,这也称作网络表示学习,网络嵌入。也有一些graph-level的表示学习方法,旨在将整个图表示成一个embedding。一般来说,现有的网络嵌入方法可以大致分为三类
  1. factorization-based approaches比如NetMF,GraRep,HOPE
  2. 浅层嵌入方法:DeepWalk,LINE,HARP
  3. 基于神经网络的方法:最近,图卷积网络(GCN)[3]由于利用了图的卷积,有效地融合了图的拓扑结构和节点特征,其多种变体已经成为图建模的主要方法
然而,大多数高级图形表示学习方法都需要外部指导,比如标注标签。许多研究者致力于提出不依赖任何外部标签的无监督算法。自监督学习也为有效利用丰富的未标记数据提供了机会

03

GENERATIVE SELF-SUPERVISED LEARNING

主要包含了自回归模型,流学习模型,自编码器和混合生成模型
3.1 Auto-regressive (AR) Model
自回归模型可以看作是贝叶斯网络的结构(有向图),联合分布可以表示为条件概率的乘积:

每个变量的概率取决于之前的变量,可以看到ARmodel往往是单向的。
在NLP中,自回归语言建模的目标通常最大化前向自回归时的最大似然,GPT和GPT2使用transformer解码器结构。与GPT不同,GPT-2删除了不同任务的微调过程。以便学习在不同任务之间泛化的统一表示,GPT2建模了  的关系,也就是给定不同的task,同样的input会有不同的output。
自回归模型也被大量用于CV方向,像pixel-RNN与Pixel-CNN。
pixel-RNN:每个像素都依赖于从左到上的隐藏状态和RGB值,而这个过程很慢。

Pixel-CNN使用卷积进行这个过程,仍然生成图像像素从角落开始。在使用CNN时,内核在卷积时只关注左边和上面的像素。这也被称为masked filters.
基于PixelCNN, WaveNet提出了一种原始音频生成模型。为了处理长期的时间依赖关系,提出了扩展的因果卷积来改善感受野。此外,还采用了门控残留块和跳过连接,以增强更好的表现力。

自回归模型也可以应用于图域问题,如图的生成。
  • GraphRNN[4]:使用深度自回归模型生成实际的图,它们将图的生成过程分解为一个节点和边的序列生成,这些节点和边的生成取决于目前生成的图,key insight就是一句话通过顺序添加节点 / 边来生成图。GraphRNN的目标定义为观察图生成序列的似然性。GraphRNN可以看作是一个层次模型,其中图级RNN维护图的状态并生成新节点,而edgelevel RNN则根据图的当前状态生成新边。
  • 在这之后MRNN和GCPN这两个自回归模型相继问世,两者都使用强化学习框架来通过优化特定领域的奖励来生成分子图。然而,MRNN主要使用基于rnn的网络来表示状态,而GCPN使用基于gnc的编码器网络。
自回归模型可以建模上下
文的独立性,但是AR的一个主要的缺点就是她只能单向的访问上下文信息,不能同时利用上下文信息。
3.2 Flow-based Model
https://zhuanlan.zhihu.com/p/43157737
回我们一般的生成模型都是如下形式。
其中,是一般的标准高斯分布。可以选择任意的高斯分布,理论上,这样的积分形式能够拟合任意分布。有了这个分布,我们要求出参数,一般就是使用最大似然求解,我们需要最大化目标:,VAE和GAN从不同的方向避开了这个困难,VAE不直接优化上式,而是通过优化一个上界,得到近似的模型。但是,是积分的形式,一般来说很难计算。GAN则通过生成器和判别器对抗的方式,绕开了这个困难。
相反,基于流的模型是直接将积分拿出来计算
具体的形式可以看看上面的推文,这里就不细讲了。
3.3 Auto-encoding (AE) Model
自动编码模型的目标是从(损坏的)输入中重构(部分)输入。由于其灵活性,AE模型可能是最流行的生成模型,有许多变体。
  1. 自编码器和玻尔兹曼机无疑是最耳熟能详的传统AEmodel了,自编码器可以看作是有向图模型,而RBM则是无向图,这类工作经常用于数据降维之中。
  2. 上下文预测模型(CPM):NLP中的CBOW和Skip-Gram都是NLP领域的预测模型(上文中word2vec的两个部分)。CBOW使用上下文预测input token,而Skip-Gram则是使用input-token预测上下文。受自然语言处理中单词嵌入模型进展的启发,许多基于相似上下文预测目标的网络嵌入模型被提出。Deepwalk[5]基于Skip-Gram模型,采样截断随机游动来学习潜在节点嵌入。它把随机游走当作等价的句子,然后采取使用中间节点预测相邻节点的方式进行训练。然而LINE[6]的目标是基于当前节点生成邻居,下面的E即边,v是节点,w是权重

3.3.1 Denoising AE Model
去噪自编码器模型的直觉是表示应该对噪声的引入具有鲁棒性。掩码语言模型(MLM)可以看作是一个去噪AE模型。为了对文本序列进行建模,掩码语言模型(MLM)随机mask输入的一些token(简单理解就是将input分词后的词序列),然后根据它们的上下文信息对它们进行预测,这与完形填空任务类似。Bert也用了类似的方法,训练时随机的将一些token进行掩盖。然而,这种方法的一个缺点是对于下游任务没有输入[MASK]。为了减轻这种情况,作者在训练中并不总是用[MASK]替换预测的标记。相反,他们会用原始单词或概率很小的随机单词来替换它们。
在BERT之后,很多类似的工作开始出现。Span-BERT[7]选择去mask随机的一段区域而不是单个的token,同时希望被遮挡Span边界的词向量能够学到span的内容。ERNIE (Baidu) 通过掩蔽实体或短语来学习实体级和短语级知识,在汉语自然语言处理任务中取得了良好的效果。ERNIE (Tsinghua) 进一步将知识图中的知识(实体和关系)集成到语言模型中。
与AR模型相比,在去噪语言建模中,预测的token可以访问双方的上下文信息。然而,MLM假设如果给定了unmasked token,需要预测的token是相互独立的。
在graph-learning的领域,GPT-GNN作为一个GNN领域的预训练模型,在图上mask部分节点或者边,然后让GNN来预测被mask掉的边和属性。
3.3.2 Variational AE Model
变分自编码器(VAE)是使用变分推理的一个重要例子。最近提出了一种新的、功能强大的变分自编码器模型VQ-VAE[8]。VQ-VAE的目标是学习离散潜变量,因为许多模式是固有的离散,如语言,讲话,和图像。VQ- VAE依赖于矢量量化(VQ)来学习离散潜变量的后验分布。具体地说,离散潜变量是通过使用共享的、可学习的嵌入表的最近邻查找来计算的。在训练中,通过直接通过估计器逼近梯度。

有句话总结得很好:自回归模型在图像比较大的情况下因计算需求暴增而失效。一个自然而然的想法是,如果能将照片压缩到低维空间,在低维空间训练自回归神经网络,再解码到高维就好了。这也是VQ-VAE 以及 VQ-VAE-2[9] 算法的精髓。即在压缩空间  上使用自回归神经网络,
变分自编码模型也被用于图的节点表示学习比如VGAE[10],这一部分我接触较少,感兴趣的看论文吧~
3.4 Hybrid Generative Models
3.4.1 Combining AR and AE Model.
一些研究人员建议结合AR和AE的优点。在MADE(masked自编码器),让自编码器的参数服从自回归模型的限制,在AE中,层与层之间全连接,但是MADE使得相邻层之间的一些连接被屏蔽,以确保每个输入维度仅从它之前的维度重新构建。
在NLP领域,Permutation Language Model (PLM)是一种结合了自回归模型和自编码模型优点的典型模型。XLNet引入了PLM,是一种广义的自回归预训练方法。XLNet通过最大化因数分解顺序的所有排列的期望可能性来实现双向上下文学习。XLNet也是一个预训练模型,那他相比于bert,gpt有什么不同呢?重点:通过对句子中单词排列组合,把一部分Ti下文的单词排到Ti的上文位置中,于是,就看到了上文和下文,但是形式上看上去仍然是从左到右在预测后一个单词。
https://zhuanlan.zhihu.com/p/70257427
3.4.2 Combining AE and Flow-based Models
在图域,GraphAF是一种基于流的分子图生成自回归模型。它可以在一个迭代过程中生成分子,也可以并行计算准确的可能性。GraphAF将分子生成形式化为一个连续的决策过程。它将详细的领域知识整合到奖励设计中,比如价格检查。受基于流模型最近进展的启发,它定义了一个从基分布(如多元高斯分布)到分子图结构的可逆转换。另外,使用去量化技术将离散数据(包括节点类型和边缘类型)转换为连续数据。

04

CONTRASTIVE SELF-SUPERVISED LEARNING

这里其实有很多内容我之前的一篇文章中有,我就不多写了,写的都是之前不会的
https://zhuanlan.zhihu.com/p/212873650

这里将最近的对比学习框架分为两种类型:context-instance对比和context-context 对比。它们在下游任务中,特别是在分类问题上,取得了惊人的成绩。
4.1 Context-Instance Contrast
上下文-实例对比,或所谓的全局-局部对比,侧重于对样本的局部特征与其全局上下文表示之间的归属关系进行建模。当我们学习局部特征的表示时,我们希望它与全局内容的表示相关联,比如条纹与老虎,句子与段落,节点与它们的邻域。主要有两种方式进行训练:
  • 预测相对位置:关注于学习本地组件之间的相对位置。全局上下文是预测这些关系的隐含要求(比如,理解大象的长相对于预测头尾之间的相对位置至关重要)。
  • 最大化互信息:学习局部部分和全局上下文之间的明确归属关系。忽略局部零件之间的相对位置。
4.1.1 Predict Relative Position
许多数据在其各部分之间包含丰富的空间或顺序关系。

例如,在这样的图像数据中,大象的头在尾巴的右边。在文字资料里,一句像“很高兴认识你”的句子一般会出现在“我也很高兴见到你”之前。各种模型都将识别其各部分之间的相对位置作为pretext(前置)任务。可以从一个样本中预测两个patch的相对位置,也可以恢复一幅图像中变换后的片段的位置(求解jigsaw),也可以推断一幅图像的旋转角度s度。PRP也可以作为创建hard positive sample的工具。例如PIRL使用jigsaw技术来扩大正样本,但PIRL并没有将求解jigsaw和恢复空间关系作为其目标。
在预训练的语言模型中,也采用了类似的思想,如下一句预测(Next Sentence Prediction, NSP)。NSP损失最初是由BERT引入的,其中对于一个句子,模型被要求区分正确的下一个句子和一个随机抽样的句子。这是因为,在NSP中,下一个句子的negative sample是从其他段落中选取的,这些段落可能与当前的段落有不同的主题,这使得NSP变成了一个简单得多的主题模型问题。ALBERT相应的提出了SOP,在SOP中,将两个互换位置的句子视为否定样例,使模型侧重于语义的连贯。
4.1.2 Maximize Mutual Information
这种方法来源于统计学中的一个基本概念——互信息(MI)。互信息的目标是建模两个变量之间的关联,我们的目标是最大化它。一般来说,这类模型都想要最大化

 表示encoder,  表示一类有约束的编码器。  是真实互信息的基于样本的估计量。在实际应用中互信息非常难以计算,因此通常最大化  的下界。
然后讲了Deep InfoMax和紧随其后的CPC,AMDIM[11]。
在Graph learning的领域, Deep Graph InfoMax (DGI)[12]将节点的表示作为局部信息,随机抽取2跳邻居的平均值作为上下文。但是在图上生成负样本比较困难,作者通过随机变化生成负例。InfoGraph目标在于学习一个graph-level的表示而不是node-level的,因此他最大化graph-level representation和不同层次的子结构的互信息。就像CMC对于infoMAX的提升一样。在Contrastive Multi-View GRL[13]中,提出了一种图的多视图对比表示学习方法。他们还发现,在图学习中,图扩散是产生扩增正样本对的最有效方法。
为了统一图的预训练,在Strategies for pre-training graph neural networks[14]作者从属性/结构和节点级/图级两个维度系统地分析了图神经网络的预训练策略。对于节点级的结构预测,他们提出了上下文预测来最大化k-hop邻域的表示及其上下文图之间的MI。对于化学领域的属性,他们提出了属性掩码来根据邻域预测节点的属性,这是一个类似于BERT中的令牌掩码的生成目标。S2GRL进一步将上下文图中的节点分离为k-hop(所谓1hop就是一个节点和他周围路径为1的节点组成的子图)上下文子图,并分别最大化其与目标节点的MI。然而,图预训练的一个基本问题是如何学习图之间的归纳偏差,而现有的图预训练工作仅适用于某一特定领域。
4.2 Context-Context Contrast
然基于mi的对比学习取得了很大的成功,但是有一些工作对他们提出了质疑
On mutual information maximization for representation learning.一文通过证明一个MI上界估计器会导致病态和较低的性能,并说明了上述模型的成功只是与MI松散地联系在一起。相反,应该更多地归因于编码器架构和与度量学习相关的负采样策略。度量学习的一个重要关注点是在提高负采样效率的同时执行hard positive sampling,它们可能在基于mi的模型的成功中发挥更关键的作用。
作为一种替代方法,上下文-上下文对比学习抛弃了MI,而像度量学习那样直接研究不同样本的全局表示之间的关系。一开始,研究人员借鉴了半监督学习的思想,通过基于聚类的区分产生伪标签,并在表征上取得了较好的表现。
最近,CMC、MoCo、SimCLR和BYOL进一步支持了上述结论,通过上下文到上下文级别的直接比较,其性能优于基于context-instance的方法,并在分类任务上与监督方法取得了竞争结果。

4.2.1 Cluster-based Discrimination
在基于聚类的方法中首先研究了上下文-上下文对比,特别是在DeepCluster中首次实现了对监督模型AlexNet的竞争性能。在图像分类问题中,我们就是要让同类的image embedding尽可能接近,但是在unsupervised场景下,我们没有标签。Deep Cluster 提出利用聚类产生伪标签,并要求鉴别器对图像标签进行预测。培训可以分两步。在第一步中,DeepCluster使用K-means对编码的表示进行聚类,并为每个样本生成伪标签。在第二步中,鉴别器预测两个样本是否来自同一簇,并反向传播到编码器。这两个步骤是迭代执行的。
最近,局部聚合(Local Aggregation, LA)将基于DeepCluster的方法再次提升。指出了DeepCluster存在的不足,并进行了相应的优化。首先,在DeepCluster中,样本被分配到互斥聚类中,而LA对每个样本分别识别邻居(LA识别的是邻居,因此是local aggregation)。其次,深度聚类优化交叉熵的判别损失,而LA使用一个目标函数,直接优化局部软聚类度量。这两个变化大大提高了LA表示在下游任务上的性能
在embedding space中聚合相似向量的类似工作是VQ-VAE,VQ-VAE针对传统图像生成高保真度图像的不足,提出了矢量量化的方法。对于图像编码的特征矩阵,VQVAE将矩阵中的每个一维向量替换为嵌入字典中最接近的向量。这个过程和LA的过程是一样的。
在图学习中,M3S采用类似的思想进行基于深度聚类的自监督预训练,以更好地实现半监督预测。在每一阶段,M3S先对自己进行预训练,像DeepCluster一样在未标记数据上生成伪标签,然后将这些伪标签与在有标记数据上进行监督训练的模型所预测的伪标签进行比较。在下一阶段半监督训练中,标记集中只加入top-k置信标签。在When does self-supervision help graph convolutional networks? 中,该思想进一步发展为三个预处理任务:拓扑划分(类似于光谱聚类)、节点特征聚类和图的完成。
4.2.2 Instance Discrimination
利用实例分辨作为前置任务的原型是InstDisc。CMC在InstDisc的基础上提出将一幅图像的多种不同视图作为正样本,将另一幅图像作为负样本。在嵌入空间中,CMC使得正样本与anchor相互靠近,并从其他样本中拉开。然而,它在某种程度上受到了深度信息模型的限制,即对每个正样本进行一个负样本的抽样。
MoCo是KaiMing He大神的新作,使用动量更新的方式解决负样本过多带来的问题,然而,MoCo采用了过于简单的正样本策略:一对正表示来自同一个样本,没有任何变换或增强,使得正样本对太容易区分。PIRL添加了如4.1.1节所述的jigsaw增强。为了生成一个pre- invariant的表示,PIRL要求编码器将一幅图像和它的拼图图像视为正样本对。
在SimCLR中,作者进一步说明了hard positive examples的重要性,它通过10种不同的数据增强形式来产生正样本,这些数据增强和CMC有点像。
SimCLR不采用MoCo的动量对比,而是采用端到端训练框架,为处理大规模负样本问题,SimCLR选择批量N大到8196。SimCLR还是值得详细的讲一讲的
一个小批量N个样本通过数据增强变为2N个,有一对正样本  ,其他的都是负样本。然后她的损失函数是
sim在这里就是余弦相似度,因为  是不对称的,因此总的损失

SimCLR还提供了一些其他有用的技术,包括一个可学习的非线性转换之间的表示和对比损失,更多的训练步骤,和更深的神经网络。进行消融研究表明SimCLR中的技术也可以进一步提高MoCo的性能。
InfoMin对增加正样本做了更多的研究。作者认为,在对比学习中,为了获得更好的扩充性观点,我们应该选择相互信息较少的view。在最佳情况下,视图应该只共享标签信息。为了产生这样的最优view,作者首先提出了一种无监督的方法来最小化视图之间的相互信息。但是这可能会导致预测标签的信息丢失(比如一个纯空白视图)。因此,提出了一种半监督方法来寻找仅共享标签信息的视图。这项技术比MoCo v2提高了约2%
BYOL则迈出了更为激进的一步,它抛弃了自监督学习中的负采样,但却取得了比InfoMin更好的结果。对于上面提到的对比学习方法,它们通过预测同一幅图像的不同视图来学习表示,并将预测问题直接投射到表示空间中。但是,在表示空间中直接预测可能会导致collapsed representations,因为多视图之间通常都具有很强的预测性。如果没有负样本,神经网络就太容易区分了。关于对比损失中负样本函数的更多讨论在第6.3.2节。
损失函数如下
他们更新参数的方式类似MoCo,online网络梯度下降,而target网络滑动更新。BYOL不仅效果很好,而且对batch size也更加的robust。
图学习中,图对比编码(GCC)率先将实例区分作为结构信息预训练的前置任务。对于每个节点,我们分别对两个子图进行随机游走,并使用它们的归一化图拉普拉斯矩阵中的顶部特征向量作为节点的初始表示。然后我们使用GNN对它们进行编码,并像MoCo和SimCLR那样计算InfoNCE损失,其中来自同一节点(在不同的子图中)的节点嵌入被视为类似的。结果表明,GCC比以前的工作如struc2vec、GraphWave和ProNE更好地学习可转移结构知识。
4.3 Self-supervised Contrastive Pre-training for Semi-supervised Self-training
虽然吧我们一直在说不用标签可以***,但是标签也是很重要滴,这也是我们和监督学习最大的gap。因此自监督无论多优秀,他们始终只是特征提取器,为了下游的任务我们仍然需要充足的label。为了缩小自监督预训练和下游任务之间的差距,半监督式学习正是我们所寻找的
我们之前讲的MoCo对很多下游任务提升很大,但是对目标检测在COCO数据集上并没有提升。这是因为实例识别目标与目标检测目标之间的差距。在这种情况下,虽然单纯的自监督前训练无法起到帮助作用,但基于半监督的自训练可以起到很大的作用。
半监督学习混合了小部分有标签数据和大部分无标签数据。不同的方法对数据分布做出了不同的假设。self-training (or self-labeling)可以说是最古老的方法了,它对少量有标记数据进行模型训练,然后对未标记数据进行标记。只有具有置信度很高的数据与原始标签数据combine在一起,训练一个新的模型。我们迭代这个过程以找到最佳model,这和图模型的M3C如出一辙。
目前ImageNet上最先进的监督模型Self-training with noisy student improves imagenet classifification遵循了自我训练范式,其中我们首先对带标记的ImageNet图像训练一个有效网络模型,并将其作为教师,对300M未标记图像生成伪标签。然后,我们训练一个更大的EffificientNet作为一个学生模型在(伪标签+真实标签)数据集进行训练。我们重复这个过程,让学生尽可能逼近。在生成伪标签的过程中,教师不被noise干扰,使伪标签尽可能准确。然而,在学生的学习过程中,我们通过随机增广的方式向学生注入诸如dropout、随机深度、数据扩充等噪声,使学生的泛化能力优于教师。
对CV领域的任务而言,Zoph等。Rethinking pre-training and self-training这篇文章,惊奇地发现,就强大的数据扩充而言,预训练的表现会有所下降,而自我训练却能从中受益。此外,标记数据越多,预训练的价值就越低,而半辅助自训练的价值就越高。他们还发现,训练前和自我训练的提高是相加的,也就是说,它们从不同的角度对成绩做出了贡献。联合预训练和自训练的模型效果最好。
Big self-supervised models are strong semi-supervised learners (SimCLR v2)证明了上述结论,表明ResNet-50在原有ImageNet标签的10%的情况下,通过联合预训练和自训练可以超过有监督的标签。他们提出了一个三步框架
  • 用SimCLR v1进行自我监督的预培训,进行一些较小的架构修改和更深层次的ResNet。
  • 精调最后几层,只使用1%或者10%的原始标签。
  • 以教师身份使用微调网络生成未标记数据的标签,以训练较小的学生ResNet-50
自监督对比预训练和半监督自训练的成功结合,为未来的数据高效深度学习范式打开了眼界。对其潜在机制的研究还有待开展。

05

GENERATIVE-CONTRASTIVE (ADVERSARIAL) SELF-SUPERVISED LEARNING

5.1 Why Generative-Contrastive (Adversarial)?
生成模型在自监督学习中成功的一个原因是,它能够拟合数据分布,在此基础上可以执行各种下游任务。生成式自监督学习的目标通常表示为极大似然函数

这里的x是我们希望建模的所有sample,c是条件限制像上下文信息等,然后通过最大似然估计(MLE)优化这个目标。然而,MLE有两个致命的问题。
  1. 想象一下  此时目标变得非常大,使得生成模型对稀有样本极其敏感。直接导致conservative分布,性能较差。
  2. 抽象目标比较低级:在MLE中,表示的分布是建立在x-level上的,比如图片中的像素,句子中的文本,图中的节点等。但是大多数的分类任务是建立在高层次的语义信息上,比如目标检测,段落理解和分子识别。
这两个问题严重制约了生成性自主监督学习的发展。幸运的是,区分和对比目标可以解决这个问题,因为它们是为人类层面的理解而设计的。以autoencoder和GAN为例,autoencoder利用了一种点态重构l2损失,它可以从样本分布中拟合像素级模式。然而,GANs利用对比目标来区分生成的样本和真实的样本,它适合semanticlevel来避免这一问题。
就与对比学习的区别而言,对抗方法仍然保留由编码器和解码器组成的生成器结构,而对比方法则放弃解码器组件。它之所以重要是因为,一方面,生成器赋予了生成模型所特有强烈的表现能力;另一方面,这也使得对抗性方法的目标比对抗性方法的目标学习更具挑战性,导致收敛不稳定。在对抗性设置中,解码器的存在要求重构表示,换句话说,包含了构建输入的所有必要信息。而在对比设置中,我们只需要学习可区分的信息就可以区分不同的样本。综上所述,对抗性方法吸收了生成性方法和对比方法的优点,也有一些缺点。在我们需要适应隐式分布的情况下,这是一个更好的选择。在下面的几个小节中,我们将讨论它在表示学习中的各种应用。
5.2 Generate with Complete Input
在本节中,我们将介绍用于表示学习的GAN及其变体,它们关注于捕获样本的完整信息对抗性表示学习的起源应该归功于生成式对抗性网络,这里主要的内容就是BiGAN和VAE-GAN。简单来说
  • VAE-GAN:VAE使用l1loss评估重构损失,VAE-GAN直接用判别器评估重构损失。前一部分是VAE,后一部分是GAN

  • BI-GAN:编码器解码器分开,使用一个额外的鉴别器来从编码器或解码器鉴别图像和代码。
5.3 Recover with Partial Input
正如我们上面提到的,GAN s架构并不是为学习表示而生的,需要修改来应用它的框架。我们不要求模型重构整个输入,而是向模型提供部分输入,并要求模型恢复其余的部分。这类似于在自然语言处理中去噪自编码器(DAE),如BERT,但以一种敌对的方式进行。
着色任务即给定一个channel,预测其他两个channel。解码器和编码器可以是任意的卷积神经网络。有趣的是,为了避免VAE等传统生成方法带来的不确定性,作者将生成任务转换为分类任务。他们首先计算出(A, B)的共同定位区域,然后将其分成313个类别。分类通过softmax层进行,并以超参数T作为调整。
Inpainting还有更加直接的方案。我们将要求模型在给定图像的其余部分的情况下预测图像的任意部分。然后利用鉴别器将被染图像与原始图像进行鉴别。超分辨率方法SRGAN遵循同样的思路,在敌对环境下从模糊的低分辨率图像中恢复高分辨率图像
5.4 Pre-trained Language Model
长期以来,预训练语言模型(PTM)主要关注基于最大似然估计作为前置任务,这是由于语言的动态模式导致区分目标的是没有什么帮助的。然而,最近的一些研究显示出了优异的性能,并阐明了PTM中对比目标的潜力。
开创性的作品是ELECTRA,在相同的计算预算下超越了BERT。ELECTRA提出替换令牌检测(RTD)并利用GAN的结构来预训练语言模型。在此设置中,生成器G是一个小型掩码语言模型(MLM),它将句子中的掩码标记替换为单词。鉴别器D被要求预测哪些词被替换。注意,replace的意思与原始的未屏蔽输入不同。培训分两个阶段进行
  1. 训练前置任务  一段时间。
  2. 和判别器一起进行训练:D的参数初始化为G的,然后训练目标  (交叉熵损失),这段时间内G的参数是不变的。
最终目标可以写为
同时,WKLM提出在实体级进行RTD。对于Wikipedia段落中的实体,WKLM将它们替换为类似的实体,并训练语言模型在类似的区分目标中区分它们,就像ELECTRA,在回答问题等下游任务中表现得很好。REALM进行了类似的工作,对语言模型进行了更高层次的检索增强。然而,领域是不使用区分实体进行工作。
5.5 Graph Learning
在图学习中,也有人尝试使用对抗性学习。有趣的是,他们的想法完全不同
. Adversarial Network Embedding (ANE) 设计一个生成器G通过两个阶段进行更新:
  1. G将采样图编码为目标嵌入,并使用上下文编码器F(如Skip-gram)计算传统的NCE(Noise Contrastive Estimation)。
  2. 鉴别器D被要求区分原图的嵌入和采样图的嵌入。
优化后的目标是上述两个目标的总和,生成器G可以对分类任务产生更好的节点表示。GraphGAN即为生成式模型和判别式模型的结合,其包含两个重要部分,即生成器G(v|vc ; θG) 和判别器D(v|vc ; θD)。生成器为每一个节点维护一个向量,这些向量组合在一起构成θG。G(v|vc ; θG) 表示生成器认为给定节点Vc和参数θG下,V与Vc之间有一条边的概率。G(v|vc ; θG)的目的就是通过学习去逼近真实分布Ptrue(V|Vc)。判别器也为每一个节点维护一个向量,这些向量组合在一起构成θD。D(v|vc ; θD)通过向量θD来判断V与Vc之间是否有一条边
GraphSGAN则在GraphGAN框架基础上加入了半监督学习,通过加入部分人工标记的数据学习特征模型,提升了性能。GraphSGAN框架解决的问题是:有由一小组有标记的节点和一组无标记的节点组成的图,如何学习一个模型,可以预测无标记节点的标记。GraphSGAN将会把小部分有标记节点的图映射到特征空间,学到一个表示,并共同训练生成器网络和分类器网络。由生成器生成伪输入,通过拼接原始特征wi和学习嵌入qi得到真实输入。将真实输入和由生成器生成的伪样本输入到分类器中,实现分类目标。
5.6 Domain Adaptation and Multi-modality Representation
对抗性学习中的鉴别器本质上是为了匹配潜在表示分布和数据分布的差异。这个功能自然涉及到领域适应和多模态表示问题,这些问题的目的是对齐不同的表示分布。

06

THEORY BEHIND SELF-SUPERVISED LEARNING

这一部分看原文比较好,最好手写一遍,变分下界和互信息的推导都不难,但是确实揭示了为什么这些工作能够work。

07

DISCUSSIONS AND FUTURE DIRECTIONS

这一节讨论了自监督学习存在的一些问题和未来可能的发展方向
Theoretical Foundation
尽管自监督学习取得了巨大的成功,但很少有人研究其背后的机制。在第6节中,我们列举了最近关于这一主题的一些研究,并表明理论分析对于避免误导性的实证结论是重要的。
Transferring to downstream tasks
在前置任务和下游任务之间有一个重要的差距。研究人员精心设计了前置任务,以帮助模型学习数据集的一些关键特征,这些特征可以转移到其他工作中,但有时可能无法意识到这一点。此外,选择前置任务的过程似乎过于启发式和棘手,没有模式可循。一个典型的例子是BERT和ALBERT中培训前任务的选择。BERT使用下一句预测(NSP)来提高句子层次的理解能力。然而,ALBERT表明NSP等于一个幼稚的主题模型,这对于语言模型的预训练来说太容易了,甚至会降低BERT的性能。对于预训练任务选择问题,一个可能令人兴奋的方向是自动为特定的下游任务设计预训练任务,就像Neural Architecture Search对神经网络架构所做的那样。
Transferring across datasets
这个问题也被称为如何学习归纳偏差或归纳学习。传统上,我们将数据集分为用于学习模型参数的训练部分和用于评估的测试部分。这种学习范式的一个必要前提是,现实世界中的数据符合我们数据集中的分布。然而,这种假设在实验中经常失败。自监督表示学习解决了部分问题,特别是在自然语言处理领域。大量的语料库用于语言模型的预培训,有助于涵盖语言的大多数模式,因此有助于在各种语言任务中成功的PTMs。然而,这是基于同一语言的文本共享相同的嵌入空间这一事实。对于像机器翻译这样的任务和像图学习这样的领域,不同数据集的嵌入空间不同,如何有效地学习可转移的归纳偏差仍然是一个有待解决的问题。
Exploring potential of sampling strategies
正负样本的采样策略对model的影响十分巨大,他们提出利用超大数量的负样本和增广的正样本,并在深度度量学习中研究了它们的影响。如何进一步释放采样的威力,是一个有待解决的、引人关注的问题。
Early Degeneration for Contrastive Learning
对比学习方法如MoCo和SimCLR正在迅速接近计算机视觉监督学习的性能。然而,他们令人难以置信的表现一般局限于分类问题。同时,生成对抗的方法ELETRA在语言模型预训练中的表现也优于其他方法,然而,一些评论指出,ELETRA在语言生成和神经实体提取方面的表现并没有达到预期。
上述问题可能是由于对比目标经常陷入嵌入空间的早期退化问题,即模型过早地过适合区分借口任务,从而失去了泛化的能力。我们期望在保留对比学习优势的同时,会有新的技术或模式来解决早期退化问题。

外链地址:

[1] https://blog.csdn.net/songbinxu/article/details/80209197

[2] https://blog.csdn.net/u010089444/article/details/52624964

[3] https://www.zhihu.com/question/54504471

[4] https://www.sohu.com/a/317789513_473283

[5] https://zhuanlan.zhihu.com/p/45167021

[6] https://www.jianshu.com/p/79bd2ca90376

[7] https://zhuanlan.zhihu.com/p/75893972

[8] https://zhuanlan.zhihu.com/p/91434658

[9] https://zhuanlan.zhihu.com/p/68339385

[10] https://zhuanlan.zhihu.com/p/78340397

[11] https://zhuanlan.zhihu.com/p/212873650

[12] https://zhuanlan.zhihu.com/p/58682802

[13] https://www.zhuanzhi.ai/vip/515f0a8244c3f201c2b02a71a7eb036e

[14] https://zhuanlan.zhihu.com/p/112086408


本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。

直播预告




历史文章推荐



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存